int main()
{
    // 测试Util.hpp中的代码
    //  cloud::FileUtil file("test.txt");
    //  std::string str = "hello world";
    //  std::cout << file.SetContent(str) << std::endl;
    //  std::string ss;
    //  file.GetContent(&ss);
    //  std::cout << ss << std::endl;
    // std::cout << file.compress("test.txt.lz") << std::endl;
    //  file.GetContent(&ss);
    //  std::cout << ss << std::endl;
    //  std::cout << file.FileName() << std::endl;
    //  std::cout << file.FileSize() << std::endl;
    //  std::cout << file.FileLastATime() << std::endl;
    //  std::cout << file.FileLastMTime() << std::endl;
    //  std::cout << file.IsExist() << std::endl;
    //  cloud::FileUtil file("test.txt.lz");
    //  file.uncompress("test.txt");
    //  file.Remove();
    //  cloud::FileUtil file("a/b/c");
    //  file.CreatDictroy();
    //  cloud::FileUtil file("./");
    //  std::vector<std::string> arry;
    //  file.ScanDictory(&arry);
    //  for(auto e : arry)
    //  {
    //      std::cout << e << std::endl;
    //  }
    //  Json::Value root;
    //  root["filename"] = "text.txt";
    //  root["size"] = "100M";
    //  std::string str;
    //  cloud::JsonUtil::Serialize(root,&str);
    //  std::cout << str << std::endl;
    //  Json::Value newroot;
    //  cloud::JsonUtil::UnSerialize(str,&newroot);

    // 测试config.hpp的代码
    //  std::cout << cloud::config::GetInstance()->GetBackDictory() << std::endl;
    //  std::cout << cloud::config::GetInstance()->GetBackupFile() << std::endl;
    //  std::cout << cloud::config::GetInstance()->GetDownloadPrefix() << std::endl;
    //  std::cout << cloud::config::GetInstance()->GetHostTime() << std::endl;
    //  std::cout << cloud::config::GetInstance()->GetPackDictory() << std::endl;
    //  std::cout << cloud::config::GetInstance()->GetPackSuffix() << std::endl;
    //  std::cout << cloud::config::GetInstance()->GetServerIp() << std::endl;
    //  std::cout << cloud::config::GetInstance()->GetServerPort() << std::endl;

    // 测试data.hpp代码
    // cloud::DataManager data;
    // std::cout << "测试Insert和GetOneByUrl" << std::endl;
    // cloud::backupInfo info;
    // info.NewBackupInfo("./bundle/bundle.cpp");
    // data.Insert(info);     // 进行插入
    // cloud::backupInfo tmp; // 利用url查找
    // data.GetOneByUrl(info.url, &tmp);
    // std::cout << tmp.url << std::endl;
    // std::cout << tmp._atime << std::endl;
    // std::cout << tmp._fsize << std::endl;
    // std::cout << tmp._mtime << std::endl;
    // std::cout << tmp._pack_flag << std::endl;
    // std::cout << tmp._pack_path << std::endl;
    // std::cout << tmp._real_path << std::endl;

    // sleep(10);

    // std::cout << "测试Update和GetAll" << std::endl;
    // info._pack_flag = true; // 修改一个不影响./bundle/bundle.cpp的限制,防止更新造成影响
    // data.Update(info);      // 更新
    // std::vector<cloud::backupInfo> item;
    // data.GetAll(item); // 获取全部
    // for (auto &tmp : item)
    // {
    //     std::cout << tmp.url << std::endl;
    //     std::cout << tmp._atime << std::endl;
    //     std::cout << tmp._fsize << std::endl;
    //     std::cout << tmp._mtime << std::endl;
    //     std::cout << tmp._pack_flag << std::endl;
    //     std::cout << tmp._pack_path << std::endl;
    //     std::cout << tmp._real_path << std::endl;
    // }

    // std::cout << "测试GetOneByRealPath" << std::endl;
    // data.GetOneByRealPath(info._real_path, &tmp); // 利用real_path查找
    // std::cout << tmp.url << std::endl;
    // std::cout << tmp._atime << std::endl;
    // std::cout << tmp._fsize << std::endl;
    // std::cout << tmp._mtime << std::endl;
    // std::cout << tmp._pack_flag << std::endl;
    // std::cout << tmp._pack_path << std::endl;
    // std::cout << tmp._real_path << std::endl;

    //对host.hpp代码进行测试
    // _data = new cloud::DataManager();
    // cloud::backupInfo info;
    // info.NewBackupInfo("../File_storage/back_dir/111");
    // _data->Insert(info);
    // _data->Update(info);

    // cloud::hot hotmanage;
    // hotmanage.RunModule();

    //测试service.hpp的代码
    // _data = new cloud::DataManager();
    // cloud::service ser;
    // ser.RunModule();
    // return 0;
}

